
#include <cstdio>
#include <string>
#include <iostream>
#include <vector>
using namespace std;
struct FTP{
	
}


struct User{
	int userType; // 1 : upload; 2 : download; 3 : anonymous;1
    int userState; // normal / uploading
    int userFlux; //用户可以使用的流量
    int userMaxFlux;
    FileNode *userPosition;
    void getUserFlux(int userId){
        server.presentMaxUserFlux = server.maxServerFlux / server.userNumber;
        if(server.presentMaxUserFlux > user[userId].userMaxFlux) {
            user[userId].userFlux = server.presentMaxUserFlux;
        }
        else {
            user[userId].userFlux = user[userId].userMaxFlux;
        }
    }
} user[maxn];

struct Server{
    int maxServerFlux;//最大限制
    int userNumber;//用户数目
    int presentMaxUserFlux;//每个用户的最大值
} server;


struct FileNode {
	bool isFile;                // 类型 0:文件, 1:文件夹
	string name;                // 名称
	int size;                   // 大小
	bool state;                 // 状态 0:normal, 1:uploading
	vector<*FileNode> fileList; // 子文件列表

	// 传字符串， 返回文件节点指针， 找不到则返回NULL
	FileNode* findFile(string name) {
		for (auto file : fileList)
			if (file -> name == name) 
				return file;
		return NULL;
	}
	// 创建文件/文件夹， 默认为uploading状态, 
	// 若有同名文件则返回NULL， 否则返回指针
	FileNode* create(string name, bool isFile, int size) {
		FileNode* file = findFile(name);
		if (file) 
			return NULL;
		else {
			file = new FileNode(name, isFile, size);
			fileList.push_back(file);
			return file;
		}
	}
	// 构造函数
	FileNode(string _name, bool _isFile, int _size) {
		name = _name;
		isFile = _isFile;
		size = _size;
		state = 1;
	}
};
int main() {

}


